package org.zoomdev.zoom.aop;

/**
 * 执行者，类似
 *
 * @see java.lang.reflect.Method#invoke(Object, Object...)
 * 通常来说，一个Invoker代表某个类的其中一个方法
 */
public interface Invoker {

    /**
     * 用参数args执行target对应的方法
     *
     * @param target
     * @param args
     * @return
     * @throws Throwable
     */
    Object invoke(Object target, Object[] args) throws Throwable;
}
